每一级缩进使用四个空格

python使用严格的代码缩进方式分隔代码块

制表符只能用于与同样使用制表符缩进的代码保持一致

不允许同时使用空格和制表符缩进

所有行限制的最大字符数79，文档或注释等没有结构化限制的大块文本行最大限制字符数72,太长可换行，括号里的直接回车换行，符号跟下行，上下对其；字符串中 \ 换行，上下对其。

文档说明 空一行 引用包 空两行 定义类和函数 类里面方法间空一行，变量赋值和导入声明之间插入空行，分割语义

分行导入不同的包，同一个包不同方法同行导入；避免使用通配符*导入；

函数名和后面的()之间不要加空格；：之前不要加空格；（）内的参数之间可以在，之后加空格；=等二元运算符前后加空格；制定关键字参数或者默认参数值的时候，= 附近不加空格。

命名规范
    那些暴漏给用户的API接口的命名，应该遵循反映使用场景而不是实现的原则

    使用英文单词命名，不要使用拼音和简拼

    不要害怕过长的命名变量，越清楚越好

    避免重复使用变量名表示不同对象

    不能使用内建名称

    避免使用大小写区分不同对象

    使用下划线分割小写单词提高可读性

    大写字母单词来表示常量

    驼峰命名法 缩写全部大写

    包名全部小写；类名首字母大写；函数名小写；

注释
    当代码更改时优先更改注释

    尽量使用英文写注释

    句尾结束时应该使用两个空格

    块注释 ‘’‘ 对一段代码进行的注释 与代码在不同的行’‘’ ####
    行注释 # 与代码在同一行的
    文章注释 ‘’‘ 函数或者文件下面的详细解释 ’‘’
    有节制的使用行注释，否则使用块注释

    为所有公共模块，函数编写文档说明，文档说明要描述方法的功能、对参数、返回值和可能的异常进行说明

    仅仅注释不是一目了然的，难以理解的代码进行注释，注释用来解释代码的功能、原因和想法，不是对代码本身的解释；不需要的代码直接删除，成熟代码不要有注释代码

惯用原则
    采用内联形式的否定词，而不要把否定词放在整个表达式的前面。例如if a is not b就比if not a is b更容易让人理解。
    不要用检查长度的方式来判断字符串、列表等是否为None或者没有元素，应该用if not x这样的写法来检查它。
    就算if分支、for循环、except异常捕获等中只有一行代码，也不要将代码和if、for、except等写在一起，分开写才会让代码更清晰。
    import语句总是放在文件开头的地方。
    引入模块的时候，from math import sqrt比import math更好。
    如果有多个import语句，应该将其分为三部分，从上到下分别是Python标准模块、第三方模块和自定义模块，每个部分内部应该按照模块名称的字母表顺序来排列。
    变量、函数和属性应该使用小写字母来拼写，如果有多个单词就使用下划线进行连接。
    类中受保护的实例属性，应该以一个下划线开头。
    类中私有的实例属性，应该以两个下划线开头。
    类和异常的命名，应该每个单词首字母大写。
    模块级别的常量，应该采用全大写字母，如果有多个单词就用下划线进行连接。
    类的实例方法，应该把第一个参数命名为self以表示对象自身。
    类的类方法，应该把第一个参数命名为cls以表示该类自身。